package com.teacherprofile.common.domain;

import java.util.Date;

import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import com.alibaba.excel.enums.poi.VerticalAlignmentEnum;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelProperty;
import com.teacherprofile.common.converters.DateConverter;
import com.teacherprofile.common.converters.social_parttime.SocialParttimeUnitNatureConverter;
import com.teacherprofile.common.core.domain.BaseEntity;
import lombok.Data;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;

/**
 * 社会兼职对象 tb_social_parttime
 * 
 * @author qvtu
 * @date 2025-05-15
 */
@Data
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, verticalAlignment = VerticalAlignmentEnum.CENTER)
@ExcelIgnoreUnannotated
@ColumnWidth(22)
@HeadRowHeight(16)
@HeadFontStyle(fontHeightInPoints = 12)
@TableName("tb_social_parttime")
public class SocialParttime extends BaseEntity
{
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.ASSIGN_ID)
    /** 主键 */
    private Long id;

    @ExcelProperty(value = "教职工号")
    /** 教职工号 */
    private String userName;
    /** 姓名 */
    @ExcelProperty(value = "姓名")
    private String nickName;
    /** 组织机构 */
    @ExcelProperty(value = "组织机构")
    private String organizationalStructure;
    /** 聘任职务 */
    @ExcelProperty(value = "聘任职务")
    private String appointmentPosition;
    /** 单位性质(0.机关2.事业单位3.民营4.国企100.其他 */
    @ExcelProperty(value = "单位性质",converter = SocialParttimeUnitNatureConverter.class)
    private Integer unitNature;
    /** 聘任期限 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelProperty(value = "聘任期限",converter = DateConverter.class)
    private Date appointmentPeriod;
    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelProperty(value = "开始时间",converter = DateConverter.class)
    private Date beginTime;
    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelProperty(value = "结束时间",converter = DateConverter.class)
    private Date endTime;

    /** 扫描件 */
    private String scannedDocumentsUrl;
}
